home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
CU Amiga Super CD-ROM 1
/
CU Amiga Magazine CD-ROM Special Edition (1995)(EMAP Images)(GB)[Issue 1995-11].iso
/
Aminet
/
biz
/
dbase
/
scdb_12a.lzh
/
scdb_12a
/
scdb.doc
< prev
Wrap
Text File
|
1995-05-21
|
15KB
|
431 lines
SCDB.DOC SCDB version 1.2a Achim Gorski
May 1995
SCDB, (c) Copyright 1994-95, Achim Gorski. All Rights Reserved.
This software may be distributed for non-profit only. This software
is FREEWARE, but NOT FOR COMMERICAL USE! This program is provided "as
is" without warranty of any kind. All risks involved using this
program is entirely yours. The author assumes no responsibility or
liability whatever for any damage or dataloss caused by using SCDB.
Although everything has been done to make sure the program is fully
functional, the author cannot guarantee this for a 100%.
Achim Gorski
Starenweg 27
50997 Koeln
Germany
Donations welcome but not solicited.
SCDB - a Sound Carrier DataBase.
SCDB is based on isam (indexed sequential acces method) and uses a
multilevel index structure.
If you search for Artist/Title and you know the first characters of
Artist, SCDB should find this entry in N/436 comparisons and (N/218)+1
for a unsuccessful search.( N = number of entries) Ok, this is not
binarysearch or treesearch but it was the easiest and fastest way to
realizse SCDB.
----------------------------------------------------------------------
-- AMIGA: Don't use the Commodore-shell, 'cause it filters CTRL-C/D --
-- OTHER: Some shells may filter Xon/Xoff CHRs : ^Q ^S ^X ^C --
-- Try to disable any filter or SCDB won't work correctly. --
----------------------------------------------------------------------
ALPHA (DEC), INTEL, ...
!! THE DEFAULT "Music.SDB" SCDB-DATABASE IS A 32 BIT BIG-ENDIAN !!
!! BYTE ORDERING DATABASE. USE THE BUILD-IN CONVERT FUNCTION !!
Some Processors (e.g. Intel & National Semiconductor) use
little-endian byte ordering! The default SCDB-database is saved in
big-endian byte ordering.
Little-endian byte ordering processors address the lowest byte with
increasing addresses.
Example:
ADDRESS|00|01|02|03
-------+--+--+--+--
VALUE |AA|BB|CC|DD <- Big-endian byte ordering
|DD|CC|BB|AA <- Little-endian byte ordering
----------------------------------------------------------------------
Edit the files '.SCDB-Category', '.SCDB-Label' and '.SCDB-Type' for
your own configuration. Maximum possible entries in 'Category'(max.
31 chars per row) and 'Label'(max. 38 chars per row) are 99. Maximum
possible entries in 'Type'(max. 12 chars per row) are 31. These
files should be in the current directory (only 'Type' has a build-in
default configuration). After changing 'Type' you should reorganize
your database or you will get wrong statistics! The default
'Music.SDB' SCDB-database will be read if no argument is given! Do
not read this document (waste of time)! Use the program!!
Try 'SCDB -h'.
Short INFO about SCDB:
COMMAND MODE
CTRL-?
Help
CTRL-F
Find Artist/Title. Try TAB-completion (once: ARTIST-completion,
twice: TITLE-completion). The function is case insensitive and
ignores every none-alphanumeric-char!
F
Find next Artist/Title
CTRL-L
Log record IN or OUT. Ok, you loaned it - this should change
LOCATION. Your chance to change it.
L
List loaned records.
M
View comment (More)
Commands:
<Space> ............. Next Page (More)
q or ctrl/c ......... Quit
< or 7 .............. First Page
> or 1 .............. Last Page
b, DEL or <BackSpace> Previous Page
V
View index ON/OFF
If index ON:
KEY ACTION
----------------------------------------------------
7 jump to top of page
1 jump to bottom of page
SPACE/DEL one page forward/backward
arrow right/left one page forward/backward
arrow up/down or +/- one line forward/backward
--Cherrymoon <--.
+---Trax II | *L 10/1994 Vinyl-Maxi
^ | ^ ^ ^
| `-- artist | | |
`------------ title record is loaned --´ | |
release date -------´ |
type --------------´
S
Searches for the string found in 'See also'
CTRL-S
Statistics
TT: 0y 0d 0h 0m 0s (Total time of Total Time) -:))
| | | | |
| | | | `-- seconds
| | | `----- minutes
| | `-------- hours
| `----------- days
`--------------- years
CTRL-P
Print current entry to SCDB_OUTPUT. If you want to use this
functions, you should set the enviroment-variable 'SCDB_OUTPUT'.
UNIX : set SCDB_OUTPUT=value
export SCDB_OUTPUT
(depends on your shell)
"value" is the printer-device!
BSD Unix: look at /etc/printcap
for the printer-device!
AMIGA: setenv SCDB_OUTPUT="prt:"
OTHER: Read your system manual !
SCDB_OUTPUT should be an ASCII-printer or a filename.
P
Print current entry (short output!).
CTRL-R
Reorganizes the database. You should do this if you update from an
old to a new SCDB-version. Regorganize will correct all statistics,
remove trash and sort the database on disk. Never reorganize a
database if you run SCDB twice or more on the same database! This
cost only your time and will reorganize nothing.
CTRL-H
Hunts for specific information in the whole database. This
function will need some time ! The function is case insensitive and
ignores every none-alphanumeric-char! TAB completes Artist, Title,
Label, Type, Category. It is possible to type an Artist-name in the
Title-field. The result is the first title of the given Artist-name.
Example:
Title: boo<TAB>
...
Title: 24 Hours
CTRL-W
Reads the whole database and creates a LIST of all entries which
match with the given key(s). Hunts for specific information like
CTRL-H. The output goes to SCDB_OUTPUT (look at CTRL-P). '**' in
Artist-field creates a list of the whole database.
W
Reads the whole database and creates a LIST (short output!). '**'
in Artist-field creates a list of the whole database.
CTRL-O
Prints a CassCover of selected entries to SCDB_PRINTER. While
choosing entries it is possible to use every function of SCDB (e.g.
FIND, HUNT,...). If you want to use this functions, you should set
the enviroment-variable 'SCDB_PRINTER'.
UNIX : set SCDB_PRINTER=value
export SCDB_PRINTER
(depends on your shell)
"value" is the printer-port!
BSD Unix: look at /etc/printcap
for the port name!
AMIGA: If your printer is on parallel-port:
setenv SCDB_PRINTER="par:"
OTHER: Read your system manual !
Your printer should support IBM/Epson printer commands and character
sets and should not set to stay in panel style at power-up.
CTRL-U
Print label. Output goes to SCDB_PRINTER. You should use
self-adhesive labels (101,6 x 35,7 mm).
CTRL-^
Import ASCII delimited. Press TAB for filename completion. The
IMPORT-function is just a by-product of my own imported database. So
don't overrate it!
CTRL-\
This function let you exchange SCDB-databases from different
systems. Press TAB for filename completion. It is possible to import
any SCDB-database from any system to any system! Little/Big-endian
byte ordering or 32/64 bit(or more) systems - no matter ! This
function imports all.
Example:
[Input:] ../alpha/Music.SDB
This will import a 64 bit little-endian byte ordering database.
Comment: importing a 64 bit database to a 32 bit system works if the
database is less than 4 Gbytes (2^32)!
This function also imports old SCDB-databases. Old SCDB-databases are
less or equal version 1.0e .
... all other functions should explain itself.
EDITOR MODE
Functions should explain itself. :-) (lazy programmer) (Rule:
writehowyalike!)
While editing Tracks it is possible to press TAB for Artist completion
(only if Artist is 'Various Artists' and only in the second half of a
string).
Use keyboard shortcuts in window (e.g. Label, Type, Category,...)
No further decription at this time: Just use it. Hit the keys and
you will see the results.
FUTURE: Any ideas??: send me mail.
----------------------------------------------------------------------
FOR THOSE WHO WANT TO KNOW MORE ABOUT THIS DATABASE:
Some information about the input-fields:
Field name Attributes Chars Comment
--------------------------------------------------------------
Artist Capitalize Words 49 Minimum: 1 char !
Title Capitalize Words 49 Not after "'"
Label Capitalize Words 38 Not after "'"
Catalog Upper case 26
See also Text 68
Type Text 12
Released Numeric 7 (?, mm/yyyy or yyyy)
Number Numeric 2 0 < x < 100
Tracks Numeric 4 0 < x < (99*Number)
Category Capitalize Words 31
Location Text 23
Barcode Numeric 18
Comment Text 1368
Info Upper case 46
TRK Capitalize Words 68 Not after "'"
Time Numeric, Time 5 (mm:ss)
dependent auto-return(time-out: 1.5s +/- 0.5s)
THE STRUCTURE OF THE MAIN-FILE:
pos length[byte] field comment
---------------------------------------------------------------------
( <= Version 1.0c (02.03.95): )
( 0. 1 ID only once in the database )
( always 8 )
>= Version 1.0d:
3 ID only once in the database
(always in Big-endian byte
ordering!!) Looks like that:
struct scdb_id {
unsigned int ID_1:4; /* ID_1: always 8 */
unsigned int endian:1; /* 1/0 big/little-endian */
unsigned int longs:6; /* bits=((longs+1)*4*8) */
unsigned int ID_2:7; /* ID_2=ID_1+endian+longs */
unsigned int :6; /* Future */
};
>= Version 1.1 :
struct scdb_id { ...
unsigned int ID_2:7; /* ID_2=ID_1+endian+longs+1 */
... };
>= Version 1.2 :
struct scdb_id { ...
unsigned int ID_2:7; /* ID_2=ID_1+endian+longs+2 */
... };
...and so on.
1. unsigned long size of record
2. 1 length
max. 49 Artist min. 1
3. 1 length
max. 49 Title
4. 1 length
max. 38 Label
5. 1 length
max. 26 Catalog
6. 1 length
max. 12 Type
7. 1 length
max. 7 Released
8. 1 ..
max. 2 Number min. '1'
9. 1 ..
max. 4 Tracks min. '1'
10. 1 ..
max. 31 Category
11. 1 length=23 length always 23
23 Location
12. 1 length
max. 18 Barcode
13. 1 ..
11 Loaned on
14. 1 ..
8 Total Time
15. 1 ..
11 Rec-Date
16. 1 ..
max. 68 See also
17.
<= Version 1.0e:
18 lines comment
saved in the known format: length,string,length,string,....
\__1 \__max.76
>= Version 1.1 :
unsigned long number of x lines
x lines comment saved in the known format:
length,string,length,string,....
\__1 \__max.78
18.
<= Version 1.0e:
Number of tracks per disc per record.
Example:
Number=2, Tracks=23 (No.1: 11TRKs, No.2: 12TRKs.
something like that should be saved:
0b 0c
>= Version 1.1 :
__/info
Number of tracks per disc per record & length, string per disc.
\__1 \__max.46
Example:
Number=2, Tracks=23, No.1: 11TRKs, No.2: 12TRKs,
Info 1: This is an, Info 2: example .
something like that should be saved:
0b 0a This is an 0c 07 example
19.
<= Version 1.0e:
length,track-string,length,time,...... (for every track)
\__1 \__max.68 \__1 \__max.5
>= Version 1.1 :
length,track-string,length,time,...... (for every track)
\__1 \__max.68 \__1 \__max.4 ( NO ':' !)
...next record -> goto 1.
The index-structure is a little bit different (build your own).
(I really hate writing documents ..^@#]´`%$`~/:@}[§"!}+..)
----------------------------------------------------------------------
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
! ! SAVE THE VINYL ! !
| | | | | | | | |
| | | | | | | | |
| | | | | | |
| | | | |
| | |
|